<?php

interface IAggregateDefinition extends IEntityDefinition
{

  /**
   *
   * @param string $name
   * @param IAssociationDefinition $def
   * @return void
   */
  public function addAssociation($name, IAssociationDefinition $def);

  /**
   *
   * @param $name
   * @return IAssociationDefinition
   */
  public function getAssociation($name);

  /**
   *
   * @return array
   */
  public function getAssociations();

  /**
   *
   * @param string $name
   * @return boolean
   */
  public function hasAssociation($name);

}

?>